package com.ny.entity;

import java.io.Serializable;
import java.util.List;

public class Result implements Serializable {
    // 状态码：对齐API文档的HTTP标准（200=成功，400=失败，401=未登录，404=资源不存在，500=服务器内部错误）
    private Integer code;
    private String msg;
    // Object类型：承载所有业务数据（登录信息、用户信息、设备列表等）
    private Object data;

    public Result(int i, String msg, Object data) {
        this.code = i;
        this.data = data;
        this.msg = msg;
    }

    public Result() {
    }
    // ------------------------- 静态工具方法：和你原来的调用习惯一致 -------------------------
    /**
     * 成功响应（有业务数据）：比如登录返回Token、查询用户返回信息
     */
    public static Result success(Object data) {
        return new Result(200, "操作成功", data);
    }

    /**
     * 成功响应（无业务数据）：比如修改昵称、重置密码
     */
    public static Result success() {
        return new Result(200, "操作成功", null);
    }

    /**
     * 失败响应
     */
    public static Result error(String msg) {
        return new Result(400, msg, null);
    }

    /**
     * 未登录响应
     */
    public static Result unAuth() {
        return new Result(401, "未登录", null);
    }

    /**
     * 资源不存在响应
     */
    public static Result notFound(String msg) {
        return new Result(404, msg, null);
    }

    /**
     * 服务器内部错误响应
     */
    public static Result serverError(String msg) {
        return new Result(500, msg, null);
    }

    // Getter 和 Setter 方法
    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}